
/*
? Object.assign(target, ...sources)
? - target 是必需的，它是目标对象，即源对象的属性将被复制到其中。
? - sources 是一个或多个被复制属性的源对象。
? 当我们调用 Object.assign() 方法时，它会将源对象（一个或多个）的所有可枚举属性复制到目标对象中，并返回目标对象。
? 如果目标对象中已经存在某个属性，则该属性的值将被源对象的值覆盖。
 */
Object.prototype.myAssign2 = function (target, ...sources) {
    let ret = Object(target)
    sources.forEach((obj) => {
        for (let key in obj) {
            console.log(key)
            //? 如果obj有指定名称的属性  这句话必须要
            if (obj.hasOwnProperty(key)) {
                ret[key] = obj[key]
            }
        }
    })
    return ret
}
const obj1 = {a : 1}
const obj2 = {b : 2}
const obj3 = {c : 3, d : 4}
const res = Object.myAssign2(obj1, obj2, obj3)
console.log(res);
